home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
SERIE_AI
/
AI_059
/
FPUCHECK
/
README.TXT
< prev
Wrap
Text File
|
1998-03-14
|
15KB
|
299 lines
FPU-Check 1.44ß
---------------
(Dear english reader!
I'm sorry, but until now there is no full english description of "FPU-Check"
available. "FPU-Check" is a program to check the reliability of the
floating point unit (FPU) of your Atari TT, or any other Atari computer
which is equipped with a Line-F floating point coprocessor, including
the Falcon and accelerator boards for the ST series.
The dialog box is held in english and, I hope so, is easy to use. If you
have problems with "FPU-Check" please contact me via email:
sk@lumumba.shnet.org (Stefan Krey))
Fuer die deutschsprachigen Leser:
0. Allgemeines
FPU-Check 1.0 ist eigentlich als "Quick-Hack" (Puristen würden sagen, das
ist es immer noch:-) in einer Zeit des ungeduldigen Wartens auf die letzten
Bauteile meiner PAK-68/3 entstanden. In dieser Zeit verfolgte ich ausserdem
die rege Diskussion in 'maus.sys.atari.hardware' über dieses Projekt und
las des öfteren von FPU-Problemen, 11 Bomben (Line-F-Exception) etc.,
insbesondere bei tuning-Versuchen auf Taktfrequenzen >32 MHz. Da es m.W.
noch kein Programm gab, mit dem man die FPU richtig fordern konnte und
das aufgetretene Fehler, Rechenfehler wie Exceptions, im Klartext zurück-
meldete, habe ich mich darangesetzt ein solches zu schreiben. Die Fraktal-
und Raytrace-Programme mit FPU-Unterstützung sind zwar immer ein guter
Test für die FPU, aber Zuverlässigkeitsaussagen lassen sich schwer treffen,
wenn das Programm sich beim ersten Fehler mit Bombenwurf verabschiedet.
FPU-Check fängt die auftretenden FPU-Exceptions ab und meldet sie im
Klartext, zusammen mit dem Namen des aktuellen Tests, sodaß man evtl.
feststellen kann, ob Fehler nur bei bestimmten Routinen auftreten. Im
'Handbetrieb' hat man bei einem Fehler die Wahl, ob man mit dem nächsten
Test fortfahren oder den Testlauf beenden möchte. Läßt man ein Logfile
ausgeben, so wird grundsätzlich der komplette Testlauf absolviert und
eventuelle Fehler werden protokolliert. Das gilt allerdings nicht für
die 'ganz harten' Fälle wie Bus- und Adreßfehler, sie werden zwar auch
abgefangen, führen aber immer zur Beendigung des Testlaufs, da in den
meisten Fällen kein Weiterarbeiten mehr möglich ist.
1. Funktionen
FPU-Type : gibt den Typ der gefundenen FPU aus. Dient nur zur Unterscheidung
der beiden Typen 68881 und 68882. Die Angabe 'Line-F' ist
eigentlich überflüssig, da mit diesem Programm nur Line-F-FPU's
getestet werden können.
Wer sich nicht ganz sicher ist, vor was für einem Rechner er sitzt,
der kann sich auch mit dem beiliegenden Progrämmchen CPUFPU.PRG
Klarheit verschaffen.
RealMath,
TrigLog : Die bekannten Hochsprachen-Benchmarks der c't, allerdings
um den Faktor 10 gestreckt! Zeitmessung für
Geschwindigkeitsvergleiche. Rechenfehler werden gemeldet!
Fractal,
SinCos : Die Ausführungszeit dieser Routinen wird ebenfalls für
Benchmarkzwecke ausgegeben.
'Fractal' zeigt den Ausschnitt Re(z)=-1.257231..-1.255960
Im(z)= 0.03024525..0.03151625
der Mandelbrot-Menge bei max. 211 Iterationen. Berechnet wird
der Ausschnitt in einfacher Genauigkeit. Die Iterations-
routine wurde in Assembler codiert.
SinCos zeigt den seltsamen Attraktor der Iteration
x <- cos(y) - sin(a*x)
y <- x + y
Mit dem Parameter a nahe bei pi. Es werden 50000 Iterationen
durchlaufen.
Aufgrund der Vielzahl der FPU-Operationen, ist es sehr
wahrscheinlich, daß bei fehlerhaft arbeitender FPU auch
ein Fehler entdeckt wird. Außerdem versehen sie die
ansonsten langweiligen Testläufe mit ein wenig
'Augenschmaus'. Rechenfehler werden hier nicht automatisch
erkannt, sollten aber im Bild sichtbar sein, wenn es nicht
nur ein Pixel ist. Exceptions werden natürlich sofort
gemeldet. Im Fractal-Test zeigen sich Fehler meist durch
große flächig-schwarze Gebiete. Im Extremfall wird nur
schwarz gezeichnet.
Diese beiden Tests sind jetzt ab Version 1.42ß abschaltbar,
da sie sehr lange dauern und bei hartnäckigen Fehlern sonst
ein zügiges 'debuggen' verhindern.
Performance : Diese Anzeige wurde in der Version 1.42ß grundlegend
überarbeitet. Es wird nur noch einmal am Anfang der Tests
die Performance gemessen und nicht mehr für jeden Test
einzelnd. Geeicht wurde die Anzeige jetzt mit meiner 48 MHz
PAK/3 mit 68882. Die MHz-Anzeige ist immer noch nicht ganz
ernst zu nehmen, sondern nur als Benchmark zu gebrauchen.
Bei einer PAK/2 werden z.B. prinzipbedingt zu kleine
Werte gemessen, hier macht sich der Level-2-Cache der
PAK/3 bemerkbar. Die Performance-Anzeige wurde jetzt mit
eingeschaltetem-Cache geeicht!
Check : Hier wird der Name des aktuell laufenden Tests eingeblendet.
Es werden fast alle mathematischen Operationen überprüft.
Zwangsläufig natürlich auch die Datentransportbefehle. Ein
paar Programmsteuerbefehle (Vergleiche, Sprünge) kommen
im 'Fractal'-code zum Einsatz.
Last Error : Gibt den letzten gefundenen Fehler im Kurztext aus.
Tests : Zählt die absolvierten Tests.
Errors : Zählt die gefundenen Fehler.
Loops : Für Langzeittests. Man kann eine Anzahl von Testläufen
vorgeben, die den Rechner auch mal über Nacht beschäftigen
können, um ein ausführliches Fehlerprotokoll zu bekommen.
Die Schleife kann vorzeitig mit einem Maus-Button-Druck
oder mit einer der Tasten CTRL, Shift, Alt. zwischen(!)
den Tests abgebrochen werden.
Logfile : Ebenfalls für Langzeittests. Gefundene Fehler werden nicht
mit einer Alertbox angezeigt, sondern in einem File mit
Datum und Uhrzeit protokolliert.
Cache : Der Cache des 68020/30 kann hiermit ein- bzw. ausgeschaltet
werden.
Start : Startet den Testlauf.
Quit : Beendet das Programm.
QuickTest : Führt einen Schnelltest der FPU-Funktionen durch.
INFO-Button : Halt das übliche. Insbesondere das...
2. Copyright
Dieses Programm darf zu nicht kommerziellen Zwecken frei kopiert und
weitergegeben werden.
3. Schlußbemerkung
Als Autor bin ich natürlich sehr an Erfahrungen mit diesem Programm
interessiert. Insbesondere, ob es bei wirklich fehlerhaften FPU's so
funktioniert wie es soll, oder ob es trotzdem noch zu katastrophalen
Abstürzen kommt. In diesem (und nur in diesem;-) Zusammenhang stellte
es sich als nachteilig heraus, daß ich zwei einwandfreie FPU's besitze,
sodaß ich Fehler nur simulieren konnte.
Eigentlich ist der obige Absatz inzwischen hinfällig geworden, denn
mittlerweile konnte ich eine nichtfunktionierende FPU live erleben (s.u.)
und ich muß sagen, daß FPU-Check zu meiner vollsten Zufriedenheit
funktioniert. Sollte es dennoch Probleme mit FPU-Check geben, bitte
ich um Benachrichtigung.
Auch Verbesserungsvorschlägen gegenüber bin ich aufgeschlossen, nur
am grundlegenden Aufbau des Programms werde ich nicht mehr viel ändern.
Also: Bitte meldet Euch bei Problemen mit FPU-Check! Vielleich hilft das
dann auch anderen.
4. Ergänzungen
Als zusätzlichen Test kann ich noch das Programm "Ikarus" von
Christoph Zwerschke @KA empfehlen.
Download in: Maus KA und MTK
Es benutzt ausgiebig die FPU, stürzt allerdings beim ersten Fehler
ab.
FPU-Check gibt's in der aktuellen Version immer in den Mailboxen
Galactica: 07151 908549
Mars-Box : 040 76621205
Auf Wunsch auch uuencoded per mail.
zur V. 1.41: Es werden jetzt die Magic-Dials von Peter Hellinger benutzt,
daher jetzt cross-check-buttons und Deaktivierung des Hinter-
grunddialoges. Leider ist dadurch das Programm bedeutend
größer geworden, ohne an Funktionalität zu gewinnen. Wen
das stört, der möge weiterhin die V. 1.40 benutzen.
Die Maus wird jetzt zwingend bei Fehlermeldungen eingeschaltet,
damit Dialoge auch beantwortet werden können.
Zwei Nachkommastellen werden bei der Reliability-
(=Zuverlässigkeits-) Angabe im Logfile ausgegeben, damit
dort bei seltenen Fehlern nicht 100% steht. Kleinere
Schönheitskorrekturen.
zur 1.42ß: Änderung der Performance-Anzeige (s.o).
"Fractal-" und "SinCos"-Test sind jetzt abschaltbar.
Zusätzlich wurde ein "Quicktest" aufgenommen für
Tests bei ganz harten Fehlern, die sich sofort zeigen.
Angesichts des Pentium-FDIV-Fehlers habe ich noch drei
Rechengenauigkeits-Tests aufgenommen. Werden regelmäßig
Fehler in den Tests "Accurac1"..."Accurac3" gemeldet, so
sollte man überprüfen, ob nicht ein Pentium anstelle einer
68881/2-FPU eingebaut ist;-)
Auch alle anderen Tests reagieren jetzt wesentlich
empfindlicher auf Rechenfehler.
Dies ist eine öffentliche beta-Version. Ich habe etliche
umfangreiche Änderungen unternommen, deren Auswirkungen
ich bis jetzt noch nicht vollständig testen konnte.
FPU-Check läuft unter MagicMac.
zur 1.43ß: T. Tempelmann hatte in den Assemblerroutinen einige nicht
restaurierte Register entdeckt. Das ist jetzt behoben.
Eventuell läuft FPU-Check jetzt auf der Medusa -- muß noch
getestet werden. Zum "ß" siehe Version 1.42ß.
zur 1.44ß: Nur kleinere kosmetische Korrekturen im Code.
Zum "ß" siehe Version 1.42ß.
5. Mit FPU-Check gefundene FPU-Fehler
Inzwischen kann ich bereits von Erfahrungen mit FPU-Check berichten:
- Der Rechner eines Freundes erzeugte einen Bus-Error beim Bewegen der
Maus während der FPU-Check-Testläufe. Die FPU sitzt in einer PAK/3.
Als Übeltäter wurde inzwischen die 68020/30-Version von "Petra"
entlarvt.
- Leider war das noch nicht alles. Derselbe Rechner hat immer noch
Probleme mit der FPU, die bis heute (25.08.96) nicht gelöst werden
konnten. Nach einer relativ kurzen Aufwärmzeit (ca. 5..10 min.)
treten sehr häufig Rechenfehler und auch Exceptions auf. Die
Fehlerrate steigt, wie so oft, mit Erhöhung der Taktfrequenz.
Ich könnte hier sehr viel darüber erzählen, was wir alles versucht
haben, den Fehler zu finden: Z.B. kompletter Austausch der Atari-
Custom-Chips, ebenso der PAK-Bestückung etc., nichts hat geholfen.
Der "Witz" an der Sache ist, daß diese PAK in meinem Rechner
fehlerfrei läuft und meine PAK in seinem Rechner ebenfalls. D.h.
weder seine PAK noch sein Mainboard können einen ernsthaften Defekt
aufweisen. Wir sind hier im Moment ratlos. FPU-Check hat uns aber
wertvolle Hilfe bei der Fehlereingrenzung geleistet.
Mittlerweile hat er eine FRAK (Fast-RAM-Karte) auf seine PAK gesetzt
und erstaunlicherweise traten die Fehler bei FPU-Check im Fast-RAM
nicht mehr auf, blieben aber im ST-RAM unverändert. Demnach scheint
der PAK/FRAK-Turm einwandfrei zu funktionieren, nur das Zusammenspiel
mit dem ST-Mainboard klappt nicht.
- Bei einem TT mit einer mit 40 MHz getakteten FPU traten nach ca.
40 min. sporadisch Rechenfehler im 'Realmath' oder 'Triglog'-Test
auf. Wohlgemerkt reine Rechenfehler und keine Exceptions! Aufgrund
der Zufälligkeit und des späten Auftretens nach längerer Rechenzeit
habe ich auf einen thermischen Fehler getippt.
- Wie mir gemeldet wurde, läuft FPU-Check bis jetzt noch nicht auf
der Medusa mit der im 68040 integrierten FPU. Ich werde mich drum
kümmern.
- Inzwischen ist auch klar warum: Indem ich mit FPU-Check die
FPU-Exceptions abfange, hänge ich den Exception-Handler zur
Softwareemulation der transzendenten FP-Operationen aus. Wie
gesagt, ich werde mich darum kümmern. Bemerkenswert ist noch,
daß FPU-Check auf einem 68040-MAC unter MagicMac läuft und zwar
mit der Softwareemulation, die der Medusa mitgeliefert wird.
MagicMac verschiebt die Exception-Vektoren, sodaß es nicht zu
einer Kollision zwischen FPU-Check und Emulator kommt. Dank
gebührt Thomas Tempelmann, der mir diesbezüglich weiterhalf.
Mit der Version 1.43ß besteht zumindest die Chance, daß sie jetzt
auf der Medusa läuft. Ich bitte alle Medusa-Besitzer um Mitteilung,
daher das 'ß'.
- Wieder ein TT: Mit FPU-Check 1.40 wurde ein TT getestet und alle
23 Tests, bis auf die mit Grafikausgabe, schlugen fehl. Der TT
soll ungetuned im Originalzustand gewesen sein, mehr wurde mir
nicht mitgeteilt.
- (Noch ein TT) Ich bekam folgende Fehlermeldung:
"Ich besitze einen TT030, der bis vor kurzem noch mit 4 Mbyte ST-Ram
ausgestattet war (0 TT-Ram), Dein Programm FPU-Check 1.4 arbeitete bis
dahin auch ohne Erkennung von Fehlern. Seit ein paar Tagen habe ich nun
eine original TT-Ram Karte (4Mbyte) eingebaut, und mehr durch Zufall noch
mal Dein Programm angestartet.
Siehe da: "inexact result, err=4.06E-003" beim Test "Realmath".
Und der Fehler ist reproduzierbar."
- Ich persönlich teste dieses Programm mit einem Mega ST2 (4MB) und
einer PAK/3 mit 48 MHz, sowie einem Mega ST1 (2MB) mit einer PAK/2
und 20 MHz 68882. Zum Glück lief es bisher immer einwandfrei durch.
(25.08.96): Die PAK/2 des "Testequipments" wurde in der Zwischenzeit
durch eine PAK/3-020 mit 68882 bei 16 MHz ersetzt.
TT-Kenner sollten sich mal mit mir in Verbindung setzen, ob
Serienfehler bei der FPU-Ansteuerung in diesen Geräten bekannt
sind.
Ich bin unter der email-Adresse:
sk@lumumba.shnet.org (Stefan Krey)
zu erreichen. Die alte Adresse bitte nicht mehr benutzen!
Stefan Krey